//
//  TargetViewController.swift
//  testRxSwift
//
//  Created by 火星人 on 2017/7/25.
//  Copyright © 2017年 火星人. All rights reserved.
//

import UIKit
import RxSwift

class TargetViewController: BaseViewController {

    override func viewDidLoad() {
        super.viewDidLoad()

        self.view.addTapWithHandle { (ta) in
            
            let disBag = DisposeBag()
            
            let source = PublishSubject<Int>()
            let target = PublishSubject<String>()
            
            // 当收到目标事件，就会从源序列取一个最新的事件，发送到序列
            // 如果两次目标事件之间没有源序列的事件，则不发射值。
            source.sample(target)
                .subscribe { event in
                    print(event)
                }.disposed(by: disBag)
            
            target.subscribe({ (eve) in
                print("target \(eve)")
            }).disposed(by: disBag)
            
            source.onNext(1)
            target.onNext("A")  //获取最新的source
            source.onNext(2)
            source.onNext(3)
            target.onNext("B")  //获取最新的source
            target.onNext("C")  //没有最新的source，不发射
            

            
            
        }

    }
}
